package transporte.server.entity;


import java.sql.Timestamp;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "trans_usuarios")
public class Usuario extends Persona{

	private String login;
	private String password;
	private Perfil perfil;
	private Timestamp fechaCreacion;
	private Timestamp fechaModificacion;
	private Estado estado;
	private Timestamp fechaCorreo;
	private byte[] firma;
	

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idestado")
	public Estado getEstado() {
    	return estado;
    }
	
	public void setEstado(Estado estado) {
    	this.estado = estado;
    }
	
	
	public static Usuario getFromPersona(Persona persona){
		Usuario usuario = new Usuario();
		
		usuario.setNmidentificacion(persona.getNmidentificacion());
		usuario.setTipoIdentificacion(persona.getTipoIdentificacion());
		usuario.setEmail(persona.getEmail());
		usuario.setTelefono(persona.getTelefono());
		usuario.setDireccion(persona.getDireccion());
		usuario.setSegundoApellido(persona.getSegundoApellido());
		usuario.setPrimerApellido(persona.getPrimerApellido());
		usuario.setSegundoNombre(persona.getSegundoNombre());
		usuario.setPrimerNombre(persona.getPrimerNombre());
		
		return usuario;
	}
	
	/**
	 * @return the fechaCorreo
	 */
	@Column(name="fecha_correo")
	public Timestamp getFechaCorreo() {
		return fechaCorreo;
	}

	/**
	 * @param fechaCorreo the fechaCorreo to set
	 */
	public void setFechaCorreo(Timestamp fechaCorreo) {
		this.fechaCorreo = fechaCorreo;
	}
	

	/**
	 * @return the fechaModificacion
	 */
	@Column(name="fecha_modificacion")
	public Timestamp getFechaModificacion() {
		return fechaModificacion;
	}

	/**
	 * @param fechaModificacion the fechaModificacion to set
	 */
	public void setFechaModificacion(Timestamp fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idperfil")
	public Perfil getPerfil() {
		return perfil;
	}

	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
	}

	@Column(name="fecha_creacion")
	public Timestamp getFechaCreacion() {
		return fechaCreacion;
	}

	public void setFechaCreacion(Timestamp fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}

	/**
	 * @return the firma
	 */
	public byte[] getFirma() {
		return firma;
	}

	/**
	 * @param firma the firma to set
	 */
	public void setFirma(byte[] firma) {
		this.firma = firma;
	}
	
	

}
